// pages/list/list.js
import fetch from '../../utils/fetch.js'

Page({

    /**
     * 页面的初始数据
     */
    data: {
        category: [],
        shops: [],
        pageIndex: 0,
        pageSize: 20,
        hasMore: true,
        searchTxt: '',
        isPull: true
    },

    // 搜索按钮功能
    handleClick() {
        let { searchTxt, pageIndex, pageSize, isPull } = this.data
        if (searchTxt != '') {
            this.setData({ isPull: false })
        } else {
            this.setData({ isPull: true })
        }
        // if (this.data.searchTxt == '') return
        fetch(`/categories/${this.data.category.id}/shops`, {
            _page: 1,
            _limit: pageSize,
            q: searchTxt
        }).then(res => {
            this.setData({ shops: res.data })
        })
    },

    // 拿到搜索内容
    getTxt(e) {
        let { searchTxt } = this.data
        this.setData({ searchTxt: e.detail.value })
    },

    // 加载下一页
    loadMore() {
        if (!this.data.hasMore) return
        let { pageIndex, pageSize } = this.data
        return fetch(`/categories/${this.data.category.id}/shops`, {
            _page: ++pageIndex,
            _limit: pageSize
        }).then(res => {
            const shops = this.data.shops.concat(res.data)
            const totalCount = parseInt(res.header['X-Total-Count'])
            const hasMore = pageIndex * pageSize < totalCount
            this.setData({ shops, pageIndex, hasMore })
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function(options) {
        fetch(`/categories/${options.cat}`)
            .then(res => {
                // 先获取分类
                this.setData({ category: res.data })
                wx.setNavigationBarTitle({
                    title: res.data.name
                })

                // 再加载商铺信息
                this.loadMore()
            })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function() {
        if (this.data.category.name) {
            wx.setNavigationBarTitle({
                title: res.data.name
            })
        }
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function() {
        // 重新加载数据
        this.setData({ shops: [], pageIndex: 0, hasMore: true })
        this.loadMore()
            .then(() => wx.stopPullDownRefresh())
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function() {
        if (!this.data.isPull) return
        this.loadMore()
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function() {

    }
})